	package cl.utfsm.android;
	
	import cl.utfsm.android.clases.*;

	import java.io.BufferedReader;
	import java.io.File;
	import java.io.FileReader;
	import java.io.IOException;
	import java.net.HttpURLConnection;
	import java.net.MalformedURLException;
	import java.net.URL;
import java.util.ArrayList;
	import java.util.List;
	import javax.xml.parsers.DocumentBuilder;
	import javax.xml.parsers.DocumentBuilderFactory;
	import javax.xml.parsers.ParserConfigurationException;	
	import org.w3c.dom.Document;
	import org.xml.sax.SAXException;
	import android.graphics.Color;
	import android.graphics.drawable.Drawable;
	import android.location.Location;
	import android.os.Bundle;
    import android.os.Environment;
import android.util.Log;
    import android.widget.Toast;
	import com.google.android.maps.GeoPoint;
	import com.google.android.maps.MapActivity;
	import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;


	public class RuteActivity extends MapActivity {
		
		//Variables importantes para el mapa	 
		
			private MapView mapView;
			List mapOverlays = null;
				
		//Variables importantes para agregar evento	
			
			OverlayItem overlayitem = null;
			MyOverlay eventnow = null;
			MyOverlay eventfuture = null;
			MyOverlay Centergps = null;
			static int lat1=0;
		    static int long1=0;

	 
		 @Override
		 public void onCreate(Bundle savedInstanceState) {

			  super.onCreate(savedInstanceState);
			  setContentView(R.layout.main);
			  Bundle bundle=getIntent().getExtras();
			  
			  //Variables de las latitudes y longitudes

			  obtener();
			  int lat2=Integer.parseInt(bundle.getString("lat2"));
			  int long2=Integer.parseInt(bundle.getString("long2"));
			  int estado=Integer.parseInt(bundle.getString("estado"));


			  //Inicializacion de las variables del mapa
			  
			  mapView = (MapView)findViewById(R.id.mapa);
			  mapView.setBuiltInZoomControls(true); 		  
			  mapOverlays = mapView.getOverlays();
			 
	
			 // Un drawable y MyOverlay  para eventos que ocurren ahora y otros para los que ocurriran.(inicializar variables)
			 
			  Drawable imagen1 = this.getResources().getDrawable(R.drawable.evento_1);
			  Drawable imagen2 = this.getResources().getDrawable(R.drawable.evento_2);
			  Drawable imagen3 = this.getResources().getDrawable(R.drawable.monito1);
			  eventnow = new MyOverlay(imagen2, this);
			  Centergps = new MyOverlay(imagen3, this);
			  eventfuture = new MyOverlay(imagen1, this);
			 		  			  
			// genero mi locacion
				Location center = new Location("reverseGeocoded");
	            center.setLatitude(lat1 / 1e6);        
	            center.setLongitude(long1 / 1e6);   
	            
	         // genero la locacion del evento
	            Location evento = new Location("reverseGeocoded");
	            evento.setLatitude(lat2 / 1e6);  
	            evento.setLongitude(long2 / 1e6);
	            
	            
	         
	         //Se calcula la distancia entre los puntos						            
	            int distance = (int)center.distanceTo(evento);  
	            Toast.makeText(this, "Distancia al evento: "+ Integer.toString(distance) + " metros.", Toast.LENGTH_LONG).show();
			  			    	
	    	  //Inicio
	    		
	    		GeoPoint srcGeoPoint = new GeoPoint(lat1,long1);
	    		overlayitem = new OverlayItem(srcGeoPoint,"-2","nada");
	    		Centergps.addOverlay(overlayitem);	
	    		
	    		//Fin
	    		
	    		GeoPoint destGeoPoint = new GeoPoint(lat2,long2);
	    		overlayitem = new OverlayItem(destGeoPoint,"-2","nada");
	    		
	    		if(estado==1){
		        	eventnow.addOverlay(overlayitem);
		        }
		        	
	        	if(estado==2){
	        		eventfuture.addOverlay(overlayitem);
	        	}		    
               
	        	//Agregar Inicio y fin al mapa
				
				 if(eventnow.size()>0) mapOverlays.add(eventnow);			 
				 if(eventfuture.size()>0) mapOverlays.add(eventfuture);
				 if(Centergps.size()>0) mapOverlays.add(Centergps);				 
				
	    		//Crear la ruta
	        	
				//DrawPath(srcGeoPoint, destGeoPoint, Color.MAGENTA, mapView);

				//Centralizar en el inicio
				
	    		mapView.getController().animateTo(srcGeoPoint);
	    		mapView.getController().setZoom(15);

	 }


		@Override
		protected boolean isRouteDisplayed() {
			// TODO Auto-generated method stub
			return false;
		}
		
		
		//Obtiene las coordenadas de mi posicion actual desde un archivo	
		public static void obtener() {
			
			File tarjeta = Environment.getExternalStorageDirectory();
	        File file = new File(tarjeta.getAbsolutePath(), "/coord.txt");
		      try {
		       
		    	 BufferedReader br= new BufferedReader(new FileReader(file));
		         String linea;
		         int i=0;
		         
		         while((linea=br.readLine())!=null)
		         {	
		            	if(i==0) lat1=Integer.parseInt(linea);	        	
				        if(i==1) long1=Integer.parseInt(linea);	
			        i++;
		         }
		      }
		      catch(Exception e){
		         e.printStackTrace();
		      }
		   }
		
	}
		
		
		